home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / dev / gui / BGUI11c.lha / demos / images.c < prev    next >
C/C++ Source or Header  |  1995-01-02  |  11KB  |  260 lines

  1. ;/* Execute me to compile with DICE V3.0
  2. dcc Images.c -proto -mi -ms -mRR -lbgui
  3. quit
  4. */
  5. /*
  6. **         $RCSfile: images.c,v $
  7. **      Description: Simple demonstration of custom imagery in buttons.
  8. **        Copyright: (C) Copyright 1994 Jaba Development.
  9. **                   (C) Copyright 1994 Jan van den Baard.
  10. **                   All Rights Reserved.
  11. **
  12. **          $Author: jaba $
  13. **        $Revision: 1.1 $
  14. **            $Date: 1994/11/18 20:08:48 $
  15. **/
  16.  
  17. #include <libraries/bgui.h>
  18. #include <libraries/bgui_macros.h>
  19. #include <libraries/gadtools.h>
  20.  
  21. #include <clib/alib_protos.h>
  22.  
  23. #include <proto/exec.h>
  24. #include <proto/bgui.h>
  25. #include <proto/intuition.h>
  26.  
  27. #include <stdio.h>
  28. #include <stdlib.h>
  29.  
  30. /*
  31. **      Generated with IconEdit.
  32. **/
  33. #ifdef _DCC
  34. __chip UWORD HelpI1Data[] =
  35. #else
  36. UWORD chip HelpI1Data[] =
  37. #endif
  38. {
  39. /* Plane 0 */
  40.     0x0000,0x0020,0x0000,0x00A0,0x0020,0x0000,0x0143,0xE020,
  41.     0x0000,0x0A8F,0xF820,0x0000,0x051C,0x7C3F,0xE000,0x0038,
  42.     0x3E00,0x0000,0x0038,0x3E00,0x0800,0x00FF,0xBFFF,0x0800,
  43.     0x003C,0x3E00,0x0800,0x07FF,0xFF3F,0x0800,0x0000,0x7C00,
  44.     0x0800,0x06FF,0x7FFD,0x0800,0x0000,0x7000,0x0800,0x07F7,
  45.     0xFAE7,0x0800,0x0000,0xE000,0x0800,0x07DE,0xFBFD,0x0800,
  46.     0x0000,0xC000,0x0800,0x06FD,0xF7EF,0x0800,0x0001,0xC000,
  47.     0x0800,0x0003,0xE000,0x0800,0x0003,0xE1B7,0x0800,0x0003,
  48.     0xE000,0x0800,0x0001,0xC000,0x0800,0x0000,0x0000,0x0800,
  49.     0x0000,0x0000,0x0800,0x7FFF,0xFFFF,0xF800,
  50. /* Plane 1 */
  51.     0xFFFF,0xFFD0,0x0000,0xFEAF,0xFFDC,0x0000,0xFD5C,0x1FDF,
  52.     0x0000,0xE0B0,0x27DF,0xC000,0xF06B,0x9BC0,0x0000,0xFFD7,
  53.     0xDDFF,0xF000,0xFFD7,0xDDFF,0xF000,0xFF18,0x5C00,0xF000,
  54.     0xFFDB,0xDDFF,0xF000,0xF800,0x18C0,0xF000,0xFFFF,0xBBFF,
  55.     0xF000,0xF900,0xB002,0xF000,0xFFFF,0xAFFF,0xF000,0xF808,
  56.     0x2518,0xF000,0xFFFF,0x5FFF,0xF000,0xF821,0x4402,0xF000,
  57.     0xFFFF,0x3FFF,0xF000,0xF902,0x8810,0xF000,0xFFFE,0xBFFF,
  58.     0xF000,0xFFFD,0xDFFF,0xF000,0xFFFD,0xDE48,0xF000,0xFFFD,
  59.     0xDFFF,0xF000,0xFFFE,0x3FFF,0xF000,0xFFFF,0xFFFF,0xF000,
  60.     0xFFFF,0xFFFF,0xF000,0x0000,0x0000,0x0000,
  61. };
  62.  
  63. struct Image HelpI1 =
  64. {
  65.     0, 0,                       /* Upper left corner */
  66.     37, 26, 2,                  /* Width, Height, Depth */
  67.     HelpI1Data,          /* Image data */
  68.     0x0003, 0x0000,             /* PlanePick, PlaneOnOff */
  69.     NULL                        /* Next image */
  70. };
  71.  
  72. #ifdef _DCC
  73. __chip UWORD HelpI2Data[] =
  74. #else
  75. UWORD chip HelpI2Data[] =
  76. #endif
  77. {
  78. /* Plane 0 */
  79.     0x0000,0x0020,0x0000,0x00A0,0x0020,0x0000,0x0140,0xE020,
  80.     0x0000,0x0A81,0xF020,0x0000,0x0501,0xF03F,0xE000,0x0001,
  81.     0xF000,0x0000,0x0001,0xF000,0x0800,0x00FF,0xF7FF,0x0800,
  82.     0x0000,0xE000,0x0800,0x07FB,0xFF3F,0x0800,0x0000,0xE000,
  83.     0x0800,0x06FF,0xFFFD,0x0800,0x0000,0xE000,0x0800,0x07F7,
  84.     0xFAE7,0x0800,0x0000,0x4000,0x0800,0x07DE,0xFBFD,0x0800,
  85.     0x0000,0x4000,0x0800,0x06FD,0xF7EF,0x0800,0x0000,0xE000,
  86.     0x0800,0x0001,0xF000,0x0800,0x0001,0xF1B7,0x0800,0x0001,
  87.     0xF000,0x0800,0x0000,0xE000,0x0800,0x0000,0x0000,0x0800,
  88.     0x0000,0x0000,0x0800,0x7FFF,0xFFFF,0xF800,
  89. /* Plane 1 */
  90.     0xFFFF,0xFFD0,0x0000,0xFEAF,0xFFDC,0x0000,0xFD5F,0x1FDF,
  91.     0x0000,0xE0BE,0xEFDF,0xC000,0xF07E,0xEFC0,0x0000,0xFFFE,
  92.     0xEFFF,0xF000,0xFFFE,0xEFFF,0xF000,0xFF00,0x4800,0xF000,
  93.     0xFFFF,0x5FFF,0xF000,0xF804,0x40C0,0xF000,0xFFFF,0x5FFF,
  94.     0xF000,0xF900,0x4002,0xF000,0xFFFF,0x5FFF,0xF000,0xF808,
  95.     0x0518,0xF000,0xFFFF,0xBFFF,0xF000,0xF821,0x0402,0xF000,
  96.     0xFFFF,0xBFFF,0xF000,0xF902,0x0810,0xF000,0xFFFF,0x5FFF,
  97.     0xF000,0xFFFE,0xEFFF,0xF000,0xFFFE,0xEE48,0xF000,0xFFFE,
  98.     0xEFFF,0xF000,0xFFFF,0x1FFF,0xF000,0xFFFF,0xFFFF,0xF000,
  99.     0xFFFF,0xFFFF,0xF000,0x0000,0x0000,0x0000,
  100. };
  101.  
  102. struct Image HelpI2 =
  103. {
  104.     0, 0,                       /* Upper left corner */
  105.     37, 26, 2,                  /* Width, Height, Depth */
  106.     HelpI2Data,          /* Image data */
  107.     0x0003, 0x0000,             /* PlanePick, PlaneOnOff */
  108.     NULL                        /* Next image */
  109. };
  110.  
  111. /*
  112. **      Put up a simple requester.
  113. **/
  114. ULONG Req( struct Window *win, UBYTE *gadgets, UBYTE *body, ... )
  115. {
  116.         struct bguiRequest      req = { NULL };
  117.  
  118.         req.br_GadgetFormat     = gadgets;
  119.         req.br_TextFormat       = body;
  120.         req.br_Flags            = BREQF_CENTERWINDOW | BREQF_LOCKWINDOW;
  121.         req.br_Underscore       = '_';
  122.  
  123.         return( BGUI_RequestA( win, &req, ( ULONG * )( &body + 1 )));
  124. }
  125.  
  126. /*
  127. **      Library base pointer.
  128. **      NOTE: The intuition.library is opened by DICE
  129. **      it's auto-init code.
  130. **/
  131. struct Library                  *BGUIBase;
  132.  
  133. /*
  134. **      Object ID's.
  135. **/
  136. #define ID_QUIT                 1
  137. #define ID_HELP                 2
  138.  
  139. int main( int argc, char *argv[] )
  140. {
  141.         struct Window           *window;
  142.         Object                  *WO_Window, *GO_Quit, *GO_Help;
  143.         ULONG                    signal = 0, rc, tmp = 0;
  144.         BOOL                     running = TRUE;
  145.  
  146.         /*
  147.         **      Open the library.
  148.         **/
  149.         if ( BGUIBase = OpenLibrary( BGUINAME, BGUIVERSION )) {
  150.                 /*
  151.                 **      Create the window object.
  152.                 **/
  153.                 WO_Window = WindowObject,
  154.                         WINDOW_Title,           "Image Demo",
  155.                         WINDOW_MasterGroup,
  156.                                 VGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  157.                                         StartMember,
  158.                                                 GO_Help = ButtonObject,
  159.                                                         BUTTON_Image,           &HelpI1,
  160.                                                         BUTTON_SelectedImage,   &HelpI2,
  161.                                                         LAB_Label,              "_Help",
  162.                                                         LAB_Underscore,         '_',
  163.                                                         LAB_Place,              PLACE_LEFT,
  164.                                                         FRM_Type,               FRTYPE_BUTTON,
  165.                                                         FRM_EdgesOnly,          TRUE,
  166.                                                         GA_ID,                  ID_HELP,
  167.                                                 EndObject,
  168.                                         EndMember,
  169.                                         StartMember,
  170.                                                 HGroupObject,
  171.                                                         VarSpace( 50 ),
  172.                                                         StartMember, GO_Quit  = KeyButton( "_Quit",  ID_QUIT  ), EndMember,
  173.                                                         VarSpace( 50 ),
  174.                                                 EndObject, FixMinHeight,
  175.                                         EndMember,
  176.                                 EndObject,
  177.                 EndObject;
  178.  
  179.                 /*
  180.                 **      Object created OK?
  181.                 **/
  182.                 if ( WO_Window ) {
  183.                         /*
  184.                         **      Assign the keys to the buttons.
  185.                         **/
  186.                         tmp  = GadgetKey( WO_Window, GO_Quit,  "q" );
  187.                         tmp += GadgetKey( WO_Window, GO_Help,  "h" );
  188.                         /*
  189.                         **      OK?
  190.                         **/
  191.                         if ( tmp == 2 ) {
  192.                                 /*
  193.                                 **      try to open the window.
  194.                                 **/
  195.                                 if ( window = WindowOpen( WO_Window )) {
  196.                                         /*
  197.                                         **      Obtain it's wait mask.
  198.                                         **/
  199.                                         GetAttr( WINDOW_SigMask, WO_Window, &signal );
  200.                                         /*
  201.                                         **      Event loop...
  202.                                         **/
  203.                                         do {
  204.                                                 Wait( signal );
  205.                                                 /*
  206.                                                 **      Handle events.
  207.                                                 **/
  208.                                                 while (( rc = HandleEvent( WO_Window )) != WMHI_NOMORE ) {
  209.                                                         /*
  210.                                                         **      Evaluate return code.
  211.                                                         **/
  212.                                                         switch ( rc ) {
  213.  
  214.                                                                 case    WMHI_CLOSEWINDOW:
  215.                                                                 case    ID_QUIT:
  216.                                                                         running = FALSE;
  217.                                                                         break;
  218.  
  219.                                                                 case    ID_HELP:
  220.                                                                         Req( window, "_Continue", ISEQ_C "There's not much I can do for you.\n"
  221.                                                                                                   "This is only a demo you know ;)" );
  222.                                                                         break;
  223.  
  224.                                                         }
  225.                                                 }
  226.                                         } while ( running );
  227.                                 } else
  228.                                         puts ( "Could not open the window" );
  229.                         } else
  230.                                 puts( "Could not assign gadget keys" );
  231.                         /*
  232.                         **      Disposing of the window object will
  233.                         **      also close the window if it is
  234.                         **      already opened and it will dispose of
  235.                         **      all objects attached to it.
  236.                         **/
  237.                         DisposeObject( WO_Window );
  238.                 } else
  239.                         puts( "Could not create the window object" );
  240.                 CloseLibrary( BGUIBase );
  241.         } else
  242.                 puts( "Unable to open the bgui.library" );
  243.  
  244.         return( 0 );
  245. }
  246.  
  247. #ifdef _DCC
  248. int wbmain( struct WBStartup *wbs )
  249. {
  250.         return( main( 0, NULL ));
  251. }
  252. #endif
  253.  
  254. /*
  255.  *      $Log: images.c,v $
  256.  * Revision 1.1  1994/11/18  20:08:48  jaba
  257.  * Initial revision
  258.  *
  259.  */
  260.